Dynamic Logic with Non-rigid Functions - A Basis for Object-oriented Program Verification
نویسندگان
چکیده
We introduce a dynamic logic that is enriched by non-rigid functions, i.e., functions that may change their value from state to state (during program execution), and we present a (relatively) complete sequent calculus for this logic. In conjunction with dynamically typed object enumerators, non-rigid functions allow to embed notions of objectorientation in dynamic logic, thereby forming a basis for verification of object-oriented programs. A semantical generalisation of substitutions, called state update, which we add to the logic, constitutes the central technical device for dealing with object aliasing during function modification. With these few extensions, our dynamic logic captures the essential aspects of the complex verification system KeY and, hence, constitutes a foundation for object-oriented verification with the principles of reasoning that underly the successful KeY case studies.
منابع مشابه
Dynamic Logic with Non-rigid Functions: A Basis for Object-oriented Verification
We introduce a dynamic logic that is enriched by non-rigid functions, i.e., functions that may change their value from state to state (during program execution), and we present a (relatively) complete sequent calculus for this logic. In conjunction with dynamically typed object enumerators, non-rigid functions allow to embed notions of objectorientation in dynamic logic, thereby forming a basis...
متن کاملVerification of Modifies Clauses in Dynamic Logic with Non-rigid Functions
For modular verification of object-oriented programs, it is necessary to constrain what may be changed by a method in addition to how it is changed. Doing so with the classical means of preand postconditions is cumbersome, and even impossible if the program context is not entirely known. Therefore, specifications make use of an additional construct, known as a “frame property” or “modifies clau...
متن کاملThe Strong Object Invariant
The concept of an invariant is fundamental to object-oriented programming, because it provides information on the overall behaviour of the class and/or its objects. An invariant is a predicate, that is true in every state that is proclaimed as valid. A strong invariant is a predicate, that is true in every valid state and false in every invalid state. Basically, we can divide them into two cate...
متن کاملFunctional Specification and Verification of Object-Oriented Programs
One weakness of Hoare-style verification techniques based on first-order predicate logic is that reasoning is backward from postconditions to preconditions. A natural, forward reasoning is possible by viewing a program as a mathematical function that maps one program state to another. This functional program verification technique requires a minimal mathematical background as it uses equational...
متن کاملNonlinear inelastic dynamic analysis of space steel frames with semi-rigid connections in urban buildings
Applied studies addressing semi-rigid connections have been limited. Scant information exists in regulations except little brief information. Therefore, this research analyzes the behavior of three-dimensional steel frames and semi-rigid connections based on beam-column method and non-linear dynamic analysis. Stability functions and geometric stiffness matrix were used to study the non-linear g...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2006